package com.jrx.anytxn.param.mapper.ext;

import com.jrx.anytxn.common.annotation.ParamTuningAnnotation;
import com.jrx.anytxn.param.entity.PrRightsAndInterests;
import com.jrx.anytxn.param.entity.PrRightsAndInterestsReq;
import com.jrx.anytxn.param.mapper.base.PrRightsAndInterestsMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 权益参数  mapper拓展接口
 *
 * @author lbz
 * date 2020/7/27
 * @version V1.0
 **/
public interface ExtPrRightsAndInterestsMapper extends PrRightsAndInterestsMapper {

    /**
     * 根据权益ID 与 租户编号 查询
     * @param rightsId
     * @param tenantId
     * @return
     */
    PrRightsAndInterests selectByRightsIdAndTenantId(@Param("rightsId") String rightsId, @Param("tenantId") String tenantId);

    /**
     * 根据租户ID查询所有（只查生效的）
     * @param tenantId
     * @return
     */
    List<PrRightsAndInterests> selectByTenIdAndStatus(String tenantId);

    /**
     * 根据租户ID查询所有
     * @param tenantId
     * @return
     */
    List<PrRightsAndInterests> selectByTenId(String tenantId);


    List<PrRightsAndInterests> queryByPrRightsAndInterestsReq(PrRightsAndInterestsReq req);

    /**
     * 根据租户ID和权益ID删除信息
     * @param rightsId
     * @param tenantId
     * @return
     */
    @ParamTuningAnnotation
    int deleteByRightsIdAndTenantId(@Param("rightsId") String rightsId, @Param("tenantId") String tenantId);

    /**
     * 据权益ID和租户ID字段更新
     * @param prRightsAndInterests
     * @return
     */
    @ParamTuningAnnotation
    int updateByRightsIdAndTenantId(PrRightsAndInterests prRightsAndInterests);

    /**
     * 根据机构编号,租户ID查询所有（只查生效的）
     * @param organizationId
     * @param tenantId
     * @return
     */
    List<PrRightsAndInterests> selectByTenIdAndOrgId(String organizationId,String tenantId);

    List<PrRightsAndInterests> selectByTenIdIdAndRightsType(String tenantId, String rightsType);

    /**
     * 库存扣减
     * @param tenantId
     * @param rightsId
     * @param minusStoreQuantity
     */
    void exchangeRightsInterests(String tenantId, String rightsId, int minusStoreQuantity);

}
